#include <bits/stdc++.h>
using namespace std;

#define MAXN 1005

int N;

char str[MAXN];

vector<string> split() {
    vector<string> vs;
    string ins = "";
    for (int i = 1; i <= N; i ++) {
        if (str[i] == '+' || str[i] == '-') {
            if (ins.length() > 0) {
                vs.push_back(ins);
            }
            ins = str[i];
            vs.push_back(ins);
            ins.clear();
        } else {
            ins = ins + str[i];
        }
    }
    vs.push_back(ins);
    return vs;
}

void work() {
    N = strlen(str + 1);
    vector<string> vs = split();
    for (int i = 0; i < vs.size(); i ++) {
        if (vs[i] == "+") {
            cout << vs[i];
        } else if (vs[i] == "-") {
            cout << vs[i];
        } else {
            if (i == 0) {
                cout << vs[i];
            } else if (vs[i - 1] == "+") {
                cout << vs[i];
            } else {
                cout << vs[i][0];
                bool flag = true;
                for (int j = 1; j < vs[i].length(); j ++) {
                    if (vs[i][j] == '0' && flag) {
                        cout << "+" << vs[i][j];
                    } else {
                        if (flag) {
                            cout << "+";
                        }
                        flag = false;
                        cout << vs[i][j];
                    }
                }
            }
        }
    }
    cout << endl;
}

int main() {
#ifndef __SKT__
    freopen("easy.in", "r", stdin);
    freopen("easy.out", "w", stdout);
#endif
    while (scanf("%s", str + 1) != EOF) {
        work();
    }
    return 0;
}
